/**
 * Author@ Cheng Feitian
 * Date: 2021-3-25
 * Description: 静态成员变量:
 * 静态成员就是在成员变量和成员函数前加上关键字static，称为静态成员
 */

#include <algorithm>
#include <iostream>
#include <string>

using namespace std;
const int maxn = 1024;

/**
 * @brief 静态成员变量
 * 所有对象共享同一份儿数据
 * 在编译阶段分配内存
 * 类内声明，类外初始化
 */

class Person
{
private:
    static int m_B;         //静态成员变量也是与访问权限的
public:
    static int m_A;         //静态成员变量

    Person();
    ~Person();
};
int Person::m_A = 10;
int Person::m_B = 10;

Person::Person()
{
}

Person::~Person()
{
}

void test01(){
    //静态成员变量两种访问方式

    //1、通过对象
    Person p1;
    // p1.m_A = 100;
    cout << "p1.m_A = " << p1.m_A << endl;
    
    Person p2;
    p2.m_A = 200;
    cout << "p1.m_A = " << p1.m_A << endl;
    cout << "p2.m_A = " << p2.m_A << endl;

    //2.通过类名
    cout << "m_A = " << Person::m_A << endl;

    // cout << "m_B = " << Person::m_B << endl; //私有权限访问不到   
}

int main()
{
    test01();
    return 0;
}
